<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>
  
  // const obj = {
  //   name:"obj"
  // }

  // 创建一个新对象，这个新对象的隐式原型指向，参数对象
  // const obj2 = Object.create( obj );

  // console.log(obj);
  // console.log(obj2);

  // console.log(obj.name)
  // console.log(obj2.name)
  
  // console.log(obj2 === obj);
  // console.log(obj2.__proto__ === obj);


  // ============


  // console.log( Object.is("hello", "hello") );
  // console.log( Object.is(365, "365") );
  // console.log( Object.is(365, 365) );
  // console.log( Object.is(true, 1) );

  // console.log( Object.is(NaN, NaN) );


  // ===========


  // const obj1 = {
  //   abc:"hello"
  // };
  // const obj2 = {
  //   xyz:"world"
  // };
  // // 将参数2的对象，合并到参数1的对象中，返回值参数1的对象
  // const obj3 = Object.assign(obj1, obj2)
  // console.log(obj1);
  // console.log(obj2);
  // console.log(obj3);
  // console.log(obj3 === obj1);
  // console.log(obj3 === obj2);


  // ===========


  // function Fn(){}
  // const f = new Fn();

  // 获取指定对象的隐式原型
  // console.log( Object.getPrototypeOf(f) );
  // console.log( Object.getPrototypeOf(f) === Fn.prototype );
  // console.log( Object.getPrototypeOf(f) === f.__proto__ );


  // ===========

  // const obj1 = {
  //   abc:"hello"
  // }
  // const obj2 = {
  //   xyz:"world"
  // }

  // 将参数1对象的隐式原型设置为参数2的对象
  // const obj3 = Object.setPrototypeOf(obj1, obj2)

  // console.log(obj1)
  // console.log(obj2)
  // console.log(obj3)
  // console.log(obj3 === obj1)
  // console.log(obj3 === obj2)

  // console.log(obj1.abc);
  // console.log(obj1.xyz);



  // ===========



  const obj = {
    name:"admin",
    age:19,
    sex:"男"
  }

  // for(let i in obj){
  //   console.log(i)
  // }

  // 获取指定对象所有的键名，以数组形式存放
  console.log( Object.keys( obj ) )
  
  // 获取指定对象所有的值，以数组形式存放
  console.log( Object.values( obj ) )

</script>
</html>
